The invention relates to turbo code (Parallel or Serial Concatenated Convolutional codes). More specifically, the invention relates to the combination of turbo code with trellis coded modulation (TCM) techniques within a multi-tone modulation environment.
Several techniques for combining turbo code with trellis code modulation (TCM) are described in the current literature. The combination is attractive because it allows high spectral efficiency in the encoder/decoder to be combined with high coding gain. In all of the prior art approaches (see references 1 through 4), the main concern is achieving low bit error rate (BER) performance at the lowest signal-to-noise ratio (SNR) possible, while obtaining high spectral efficiency. The codes described in the prior art are designed for a fixed modulation system. For example, the codes are designed for M-Quadrature Amplitude modulation (M-QAM) or M-Phase Shift Keying (M-PSK), where M, the dimension of the constellation, is constant for the application.
Turbo code achieves very impressive bit error rate (BER) performance. However, turbo code exacts a price in terms of computational complexity and block size in exchange for such low BER. These problems are compounded when viewed from the standpoint of multichannel transmission systems. In multichannel or multicarrier systems, the number of bits that can be transmitted in a single symbol time in each channel is very small compared to the size of a turbo block. However, in order to decode turbo-encoded data, the entire block must be received at the modem. This is because all of the parity bits relate to all of the information bits. This means that the receiver must wait many symbol times in order to decode a single bit of data. For example, in QAM modulation in a multicarrier system, such as digital subscriber line (DSL) modems, where total power for all sub-bands is limited and a power spectral density (PSD) mask applies, QAM constellation sizes may be limited to something like 10 bits per channel. A typical turbo block size is of the order of 1000 bits plus the parity bits. The receiver would have to wait 150 symbol times (assuming a 2/3 code rate) and queue up a lot of data before it could decode.
In addition to the long delay for transmitting large turbo blocks, the prior art techniques, do not address the multi-tone modulation environments. In multi tone communications, multiple channels, each identified with a separate frequency carrier, are employed to transmit data. In a multi tone system, the channel characteristics vary from channel to channel and advantages are achieved by allowing the constellation sizes to vary from channel to channel; hence the name which is short for multiple tones. For example, determining how many parity bits to send is based on selecting a code rate that provides the highest possible information bit rate. The code rate, however, is a single parameter that must be traded against constellation size and signal-to-noise ratio (SNR). But in a multi tone environment, these are allowed to vary from channel to channel.
Since the filing of our prior U.S. patent application Ser. No. 09/001,342, filed Dec. 31, 1997, we have learned of two further prior art references, U.S. Pat. Nos. 5,446,747 and 5,563,897 which relate to Turbo code. The ""747 patent describes two codings in parallel and the ""897 patent is directed to detecting information bits processed by the codes.
An object of the invention is to provide an apparatus for implementing turbo code and trellis code modulation in a multi tone communications environment.
Another object of the invention is to provide an improved method for calculating turbo code parameters.
Still another object of the invention is to provide an improved method for coding and decoding turbo coded data bits.
Briefly, a method and apparatus to transmit turbo-encoded data in a multitone channel assigns the original data and selected parity bits across subchannels allowing transmission of an entire turbo-encoded block within one or few symbol time frames. Parity bits are selected by a procedure using data derived by optimization using simulation of a single-channel system. The optimization determines, for a specified bit error rate, for each possible number of information bits per symbol, the code rate and constellation size corresponding to the lowest signal-to-noise ratio. Alternatively, in the simulation non-identical integer values may be applied to the channels to approximate non-integer values of code rate and information bits-per-channel in the aggregate. The optimized data are used to determine an optimal code rate, constellation size, and SNR for each channel. In assigning the respective bits to the channels, the number of parity bits in each channel are shared
To eliminate the processing delay associated with transmitting large turbo blocks, this patent application proposes spreading a single turbo block across multiple channels. So, for example, if there are 512 channels in a multicarrier system and each channel carry 2 bits per symbol, the receiver can receive an entire turbo block plus parity bits in a couple of symbol times. In turbo code, the code rate and the constellation size can be varied selectively based on the channel characteristic. For example, turbo code produces at least two parity bits for each information bit. However, it is rare that the highest throughput is obtained by sending all the parity bits (the lowest code rate). The overhead is too high (that is, the code rate or ratio of information bits to total bits is too low) for the benefit of having so many parity bits. Thus, in using turbo codes, transmitters remove parity bits in a process of puncturing. Given a channel attenuation and noise level, one can find by simulation, the optimum number of parity bits to transmit and the optimum constellation size for the given power constraints. That is, constellation size is traded against signal-to-noise ratio and code rate for a fixed bit error rate and channel characteristic (attenuation and noise and whatever other characteristics may be folded into the channel model used for simulation) to optimize the number of information bits transmitted at the given BER.
The present invention applies a combination of turbo code and trellis code modulation (TCM) in a multi-tone modulation system. For example, the invention is applicable to a multi tone system employing M-quadrature amplitude modulation (M-QAM) or M-phase shift keying (M-PSK), where M, the dimension of the constellation, can vary from one channel to another channel. The turbo code trellis code modulation (TTCM) design of the invention, is based on the fact that the size of the constellation for each channel varies from channel to channel. The invention permits the use of a single TTCM encoder in the transmitter and a single TTCM decoder in the receiver. This feature reduces delay compared to prior art devices that employ separate individual encoders and decoders for each channel. The feature also reduces the complexity of the transmitter and receiver.
Another significant difference between the technique used in the invention and prior art techniques is the fact that bits are never estimated from the symbols. According to the invention, the received symbols are used to compute the parameters of the turbo code directly. In addition, in this regard, this technique is more efficient in terms of computational complexity. More specifically, combining log of the likelihood ratio approach and this technique makes computation of turbo code parameters very simple.
The invention can be used in systems where there are many available channels to transmit the information from one transmitter to one receiver. In such systems, instead of having multiple encoders and decoders at the transmitter and receiver to service all the channels, there will only be a single encoder that applies the turbo code trellis coded modulation to the channels and a single decoder to decode the information that is sent throughout the various channels. Any modulation scheme such as QAM or PSK can be used for this invention and the size of the constellation across all available channels can be different from each other. A similar technique can be used when we transmit the data over one channel, but the channel is divided into many frequency sub-bands and each one of these sub-bands is treated as a unique channel.
The current invention will only require one encoder for delivery of information over environment with multiple channels and decoding of the received encoded data with only one decoder at the receiver. The same advantages accrue where the channel is divided into many frequency sub-bands and each sub-band is treated as a separate channel.